import cv2
import numpy as np

def usm_sharpening(image, sigma=2, strength=10):
    # 高斯模糊
    blurred = cv2.GaussianBlur(image, (0, 0), sigma)
    # 锐化图像 = 原始图像 + 原始图像 - 模糊后的图像
    sharpened = cv2.addWeighted(image, 1.0 + strength, blurred, -strength, 0)
    return sharpened

# 读取图像
fileName = '5filter'
image = cv2.imread('images/'+fileName+'.jpg')

# 进行 USM 锐化处理（对每个通道分别进行处理）
sharpened_image = np.zeros_like(image)
for i in range(3):  # 对每个通道进行处理
    sharpened_image[:, :, i] = usm_sharpening(image[:, :, i])

# 显示原始图像和锐化后的图像
cv2.imshow('Original Image', image)
cv2.imshow('Sharpened Image', sharpened_image)
#cv2.imwrite('images/'+fileName+'final.jpg', sharpened_image)
cv2.waitKey(0)
cv2.destroyAllWindows()
